AWS re:Invent 2019 Day.3
https://gyazo.com/2db2dd623c5a479520c8d423a40c620b
Day.3はTechnical Sessionもいくつか聴講する。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOB310-R2 - Simple serverless solutions for your mobile apps
Speaker: Bryan Chua - Solutions Architect, Amazon Web Services
Notes:
Speakerはシンガポールのサーバーレス担当の方。
最初にサービス概要の説明。API Gateway, Step Functions, AppSync, Amplifyとか。CDKいいよ。
それでは順を追ってサーバーレスアプリケーションの構築例を紹介していきましょう。
Example#1: Chat App
https://gyazo.com/49babc2434eb5cc193f345cbdcec36de
Chat Appの開発はこれだけあればOK。
双方向通信、認証もAmplify ConsoleでManageできる。
Example#2: Photo App
https://gyazo.com/85bd1e17895324c0ce35a3153c28dfbd
Photo Appの機能を追加してみましょう。
Pinpointをどういう意図で入れているのかがイマイチ理解できなかった
Example#3: E-Commerce App
https://gyazo.com/1eebafbefe509d585d98fb9c382e5558
ユーザーがアプリを終了した後にPinpointをKickしておくと良い
アプリの終了についてはAppSyncのイベントで取得ができる
感想
モダンなモバイルアプリケーションはREST APIではなくてAmplify + AppSyncで組むのが良さそうだ
PinpintはPush用途などに使えるのだろうか。あまり知らなかったサービスだけど触ってみたい。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Get started with AWS DeepRacer
Jillian Forde - Solutions Architect, Amazon Web Services
Eduardo Calleja - Software Engineer, Amazon Web Services
Notes:
基本的な開発サイクル
Reinforcement learning (= 強化学習) によるモデル構築
バーチャル環境でのシミュレーション、走行テスト
実機へのモデルのデプロイ
DeepRacerにおける強化学習について
Agent = DeepRacer のブレインだと思えば良い? Agentは総報酬を最大化するために学習を行う。
Environment = ReepRacerが走行するコースだと思えば良さそう
State = とあるEnvironmentのスナップショット。DeepRacerのフロントカメラのキャプチャ画像。
Action = StateごとにActionを実行できる。Actionで指定できるパラメータはStealingとThrottle。つまりハンドルの角度と走行速度かな。
Reward = 強化学習で使う報酬のパラメータ。Reward function (報酬関数) を作っておく? あるいは提供される?
AgentはEnvironmentのキャプチャであるStateごとにActionを行い、Rewardを得て次のStateへ進む。RewardはEnvironmentに規定されている。エージェントは最初はランダムなアクションをして試行錯誤し正のRewardと負のRewardを獲得しながら、最終的にRewardが最大化するように学習を進める
→ なるほど!
専用のConsoleが用意されている。ある程度は用意されたもをパラメータチューニングだけでも速くなるのかもしれない。
Introducing DeepRacer Evo
カメラが2個に増えた
A forward facing left and right camera make up the stereo camera, which help the agent to implicitly learn depth information in images. The information can be used to avoid obstacles on the track.
カメラが2個になったことでDepthがわかるようになるため、オブジェクトを避ける性能などが向上している模様。Depthセンサが付いているということはDeepRacer League 2020はコース上に障害物とかが入ってくるのかな?
メモリなどは初代と同じ。OSやROSなどの基本ソフトは同じっぽい。
やってみた
使えるRegionはus-east-1のみ
DeepRacer resources stackを作るのにそこそこ時間がかかる
リソースができたら強化学習を開始できる。専用のコンソールに入る (まさかのCloudFrontのhost名そのままだった。あんまりこういうのは気にしないんだね‥w)
↓ わかりやすい資料があったので貼っておく
https://gyazo.com/11b561beeeba27b9916d71609e66b481
table:報酬関数で使えるパラメータ
x and y The position of the vehicle on the track
heading Orientation of the vehicle on the track
waypoints List of waypoint coordinates
closest_waypoints Index of the two closest waypoints to the vehicle
progress Percentage of track completed
steps Number of steps completed
track_width Width of the track
distance_from_center Distance from track center line
is_left_of_center Whether the vehicle is to the left of the center line
all_wheels_on_track Is the vehicle completely within the track boundary?
speed Observed speed of the vehicle
steering_angle Steering angle of the front wheels
色々とパラメータを設定したら、その後は学習を実行する。めっちゃ時間かかる。
学習が進むにつれて獲得報酬が増えていっている感じが見えるのはちょっと良い‥w
Tips: MacのSafariだとシミュレーション動画が再生できない😂 Chrome推奨 → と思ったけどChromeでも途中で止まった。何なんだろう??
Workshop参加すると$30のAWSクレジットがもらえる。1回の学習でどれぐらいのコストになっているのかは後で見てみたい。ちなみにDeepRacerはもらえない
(学習を待ってるの疲れてきたので、このあたりでWorkshopは撤収。デモレースはあとでやってみよう。)
学習が終わってモデルができていたので開催中のレースに参戦してみたら、まさかのDNF 😂
適当に作ったモデルだと完走すらままならんのか。試行錯誤してみたいけどさすがに時間が無いのでいったん断念。
感想:
これ、ランカーの人たちはどうやってるんだろう? まずはロジックで脳内シミュレートしてから学習させているのか、とにかく試行錯誤でパラメータ変えて学習させまくっている (札束で殴っている) のか。理論よりも Try & Error タイプの人は学習にかけるコスト (時間と料金) の問題が大きそう。
上位を狙うためには、相当のコストを覚悟しないといけないと思われる。時間もカネも。個人の道楽でやるのは結構しんどいと思う。DNPさんが会社のバックアップの元で上位ランカーに名を連ねている意味がわかった気がする。
強化学習によるモデルの作り方はとてもよく理解できた。特にチュートリアルの動画が秀逸。一発で理解できる。
シミュレーションで作ったモデルを実環境で動かす際にどれぐらいの環境差異が出てくるのかは純粋に気になる。
ミニ四駆と違って、スピードが電池残量に依存しないのが素敵だなw
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Running Kubernetes applications on AWS Fargate
Massimo Re Ferre - Developer Advocate, Amazon Web Services
Nate Taber - Job Titleが書いてなかったけどPuroduct Manager的な人っぽい
Notes:
Amazon CTOのWarnerが与えたMission:
- Fargeteによって複雑な設定や管理から開放し、カスタマーがコードに集中できるようにせよ
Fargateの何が良いかと言うと、Virtual Hostが見えないこと。
Kubernetes未学者には難しい。イマイチ言ってることがわからない。Level 300だからそりゃそうなんだけど。
クラスタの構築は kubectl でだいたいできる
デプロイフロー。Validating Webhook? ほうほう、構成の検査することができるんだ。
Podのサイズをどう決めるべき? ケースバイケースだけど、基本的には予測あるいはモニタリング結果をもとにリソース配置が平準化するように最適化する。
質疑応答のコーナーでDataDogによるモニタリングどうすればいいの? → 今話してるから数ヶ月待って、という話があった。
感想:
ここでも Undifferentiated Heavy Lifting の排除、を連発。もはや社訓にすべきなのでは。
表面的にはVirtual Hostの管理が不要になって管理コストが減ることがメリットなんだろうけど、FargeteもEKSもほとんど知らないのでツラみがわかっていなので、どういう課題が解決するのかもよくわかっていない。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Introducing Amazon SageMaker Studio, the first full IDE for ML
Sumit Thakur - Senior Product Manager - Technical, Amazon Web Services
Sharath Pasupunuti - Sr.Director of Engineering, Artificial Intelligence, 1977
Notes:
Why ML? --> for better Product, Better operation. better dicision
これまではめっちゃ課題があった。デプロイメント、チーム開発、データサイエンティストと開発者のコラボレーションなど。
Studioは各種ツール、新しくLaunchしたものを含め、すべてをIntegrationしているよ
Build --> Train --> Deploy
Amazon SageMaker Experiments、SageMaker Notebooks経由で利用できる。実験、学習、比較、PythonSDKによる利用などが柔軟に利用可能。
意外と全サービスを網羅的に説明する感じのSessionみたい。
SageMaker Debugger: Modelのボトルネックの発見、Visual Interfaceで利用可能、可視化、ハイクオリティモデルがQuickに作れる。Own RuleもSDKを使えば作れる。
Deploy後にやること → Model Monitoring。CloudWatch Likeなモニタリング、ドリフトの検出もできる。(モデルのドリフトっていったいどういう状態のことを指すのだろう??)
SageMaker Autopilot: データを入れて、予測するColumnを指定して、モデルが生成されて、試験的に使ってみて、notebookを取得する。All Skill Levelの人が使いやすいですよ。
SageMaker Studioの説明が始まったけど、ふーんって感じ。やっぱりこうったToolは実際に使ってみないと完全に理解できない。デモを見る限りではnotebookと同じことをやっている気がするけど、とりあえずメリットはいろいろなところに散らばっている機能をSingle Unified Interfaceで利用できる、ってところみたい。なんか思ってたんと違うなぁ。GUIで学習シーケンスを組んだりできるのかと思ったが、そういうものではないらしい。